home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2003 October / INTERNET108.ISO / pc / software / windows / utils / tiny_firewall / tpf5.exe / Tiny Personal Firewall 5.0.msi / Options.js < prev    next >
Encoding:
JavaScript  |  2003-06-12  |  4.1 KB  |  117 lines

  1. //Options.js
  2. var ERR_GET_MODULE_PARSER = "Error: Cannot get Parser object for module";
  3. var arrOptions = new Array();
  4. var Parser;
  5.  
  6. function OnLoad()
  7. {
  8.     fw.innerHTML = GetModuleOptionsStr(2);
  9.     sbx.innerHTML = GetModuleOptionsStr(1);
  10.     //ids.innerHTML =    GetModuleOptionsStr(16);
  11. }
  12. function GetModuleOptionsStr(ModuleID)
  13. {
  14.     var Option, OptList, strOptions;
  15.     Parser = window.external.ServerParser(ModuleID) ;
  16.     if (Parser == null)
  17.     {
  18.         return "";
  19.     }
  20.     strOptions ="";
  21.     OptList = new Enumerator(Parser.GlobalOptions);
  22.     OptList.moveFirst();
  23.     do 
  24.        {
  25.         //add option to array
  26.         arrOptions[arrOptions.length]=OptList.item();
  27.         strOptions += GetOptionStr(OptList.item(), ModuleID);
  28.           OptList.moveNext();                 //Move to the next Option
  29.        }
  30.        while (!OptList.atEnd());
  31.     //add apply button
  32.     return strOptions;
  33. }
  34. //applies changes to parser
  35. function OnChange(Ctrl, ModuleID)
  36. {
  37.     Parser = window.external.ServerParser(ModuleID) ;
  38.     OptionList = Parser.GlobalOptions;
  39.     var OptionID, oOption, Value;
  40.     OptionID = Ctrl.name;
  41.     if (OptionID == "UnkAppStartDlg")
  42.         Value = Ctrl.checked?1:0;
  43.     else
  44.         Value = Ctrl.options[Ctrl.selectedIndex].value;
  45.     oOption = OptionList.Get(OptionID);
  46.     if (oOption)
  47.     {
  48.         oOption.Value = parseInt(Value);
  49. //        alert(oOption.Value + Value);
  50.     }
  51.     
  52. }
  53. //return ful tag string for one parser option
  54. function GetOptionStr(Option, ModuleID)
  55. {
  56.     var strOption="";
  57.     switch(Option.PropertyID)
  58.     {
  59.     case "UnkAppStartDlg": //checkbox
  60.         strOption = GetCheckBoxHtml(Option, ModuleID);
  61.         break;
  62.     case "PreventClosedPortAccess": //custom combo
  63.         strOption = GetPreventClosedPortAccessHtml(Option, ModuleID);
  64.         break;
  65.     default: //Audit levels
  66.         strOption = GetALComboHtml(Option, ModuleID);
  67.         break;
  68.     }
  69.     return strOption;
  70. }
  71. function GetCheckBoxHtml(Option, ModuleID)
  72. {
  73.     var strCode;
  74.     var Val ="";
  75.     if (Option.Value == 1)
  76.         Val = "CHECKED";
  77.     strCode = '<p align="left"><input type="checkbox" '+ Val + ' name="' + Option.PropertyID;
  78.     strCode += '"onclick="OnChange(this,'+ ModuleID+')"> ' + GetDisplayStr(Option.PropertyID) +'</p>'; 
  79.     return strCode;
  80. }
  81. function GetPreventClosedPortAccessHtml(Option, ModuleID)
  82. {
  83.     strCode = '<table><tr><td width="200">'+GetDisplayStr(Option.PropertyID)+'</td><td align="right">';
  84.     strCode += '<select name="'+ Option.PropertyID+'" OnChange = "OnChange(this,'+ ModuleID+')">';
  85.     strCode +=    '<OPTION value=0 '+ (Option.Value==0?'SELECTED':'') +'>Don\'t hide closed port</OPTION>';
  86.     strCode +=    '<OPTION value=1 '+ (Option.Value==1?'SELECTED':'') +'>Filter incoming requests</OPTION>';
  87.     strCode +=    '<OPTION value=2 '+ (Option.Value==2?'SELECTED':'') +'>Filter outgoing responses (ICS setting)</OPTION>';    
  88.     strCode += '</select></td></tr></table>';
  89.     return strCode;
  90. }
  91.  
  92. function GetALComboHtml(Option, ModuleID)
  93. {
  94.     strCode = '<table><tr><td width="200">'+GetDisplayStr(Option.PropertyID)+'</td><td align="right">';
  95.     strCode += '<select name="'+ Option.PropertyID+'" OnChange = "OnChange(this,'+ ModuleID+')">';
  96.     strCode +=    '<OPTION value=0 '+ (Option.Value==0?'SELECTED':'') +'>Ignore</OPTION>';
  97.     strCode +=    '<OPTION value=1 '+ (Option.Value==1?'SELECTED':'') +'>Monitor</OPTION>';
  98.     strCode +=    '<OPTION value=2 '+ (Option.Value==2?'SELECTED':'') +'>Alert</OPTION>    </select></td></tr></table>';
  99.     return strCode;
  100. }
  101. function GetDisplayStr(PropID)
  102. {
  103.     var DisplayStr = PropID;
  104.     switch(PropID)
  105.     {
  106.         case "SBXChangeSecurityAL":     DisplayStr = "Change security audit level";break;
  107.         case "StartProcessAL":             DisplayStr = "Start process audit level";break;
  108.         case "EndProcessAL":            DisplayStr = "End process audit level";break;
  109.         case "ChangeConditionAL":        DisplayStr = "Change condition audit level";break;
  110.         case "ChangeProcConditionAL":    DisplayStr = "Change process condition audit level";break;
  111.         case "UnkAppStartDlg":            DisplayStr = "Alert when unknown application starts";break;
  112.         case "FWChangeSecurityAL":        DisplayStr = "Change security audit level";break;
  113.         case "PreventClosedPortAccess":    DisplayStr = "Prevent closed port access";break;
  114.         case "ClosedPortAccessAL":        DisplayStr = "Closed port access";break;
  115.     }
  116.     return DisplayStr;
  117. }